package com.hyhy.hycloud.uaa.rpc;

import java.util.List;

/**
 * 第三方绑定RPC服务接口
 *
 * @author Xuegui Yuan
 * @date 2018-12-24
 */
public interface VendorBindServiceApi {
    /**
     * 根据用户ID获取微信OPEN ID列表
     *
     * @param userId 用户ID
     * @return OPEN ID列表
     */
    List<String> getUserWeixinOpenIdList(String userId);

    /**
     * 根据用户ID获取微信OPEN ID列表
     *
     * @param appId  APP ID
     * @param userId 用户ID
     * @return OPEN ID列表
     */
    List<String> getUserWeixinOpenIdList(String appId, String userId);

    /**
     * 根据手机号获取微信OPEN ID列表
     *
     * @param mobile 用户ID
     * @return OPEN ID列表
     */
    List<String> getWeixinOpenIdListByMobile(String mobile);

    /**
     * 根据APP ID和手机号获取微信OPEN ID列表
     *
     * @param appId  APP ID
     * @param mobile 手机号
     * @return OPEN ID列表
     */
    List<String> getWeixinOpenIdListByMobile(String appId, String mobile);

    /**
     * 获取OPEN ID列表
     *
     * @param vendor OPEN ID提供方
     * @param userId 用户ID
     * @return OPEN ID列表
     */
    List<String> getUserOpenIdList(String vendor, String userId);

    /**
     * 获取OPEN ID列表
     *
     * @param appId  APP ID
     * @param vendor OPEN ID提供方
     * @param userId 用户ID
     * @return OPEN ID列表
     */
    List<String> getUserOpenIdList(String appId, String vendor, String userId);

    /**
     * 获取OPEN ID列表
     *
     * @param vendor OPEN ID提供方
     * @param mobile 手机号
     * @return OPEN ID列表
     */
    List<String> getOpenIdList(String vendor, String mobile);

    /**
     * 获取OPEN ID列表
     *
     * @param appId  APP ID
     * @param vendor OPEN ID提供方
     * @param mobile 手机号
     * @return OPEN ID列表
     */
    List<String> getOpenIdList(String appId, String vendor, String mobile);
}
